I'm confused by the intent for new grammar for key_schema.
How do you assign values if the key_schema is not a string? YAML does not have such syntax. Would it be a list a tuples, perhaps? Is this in the spec somewhere but I missed it?
Also, it seems the the new "schema definition" itself has keywords for key_schema and entry_schema. Is this a mistake? Shouldn't those only be in attribute/property definitions?
Also, a long-standing issue: the entry_schema and key_schema keywords are marked as non-required. However, if the type is a list or map then they should be required, no? Or is there a default value (string?) that is expected. This behavior is not specified.