Optionalauthor?: stringOptionaldependencies?: Record<string, string>Object form: package guid -> semver range.
Optionallicense?: stringOptionalmodules?: string[]Claimed optional modules (kebab-case identifiers, e.g. "signatures").
OptionalreadOnly?: booleanOptionalrepository?: { type: string; url: string }
Parse metadata.json, accepting the legacy gem form for
dependencies(array of{name, version}) and normalizing it to the canonical object.