Yeah, "Schemaless" is a total misnomer. You either have "schema-on-write" or "schema-on-read".
"schema in code" covers all bases.
Schemaless means there’s no assurance that the stored data matches any consistent schema. You may try to apply a schema on read, but you don’t know if the data being read will match it.