why don't we just json/yml encode the map rather than relying on knowing what fields it contains? that way DescribeMetadata can return whatever information it likes and we don't have to update both places