This is a case for using a sequence
. Unlike a mapping, keys are optional and don't need to be described by the schema.
From Configuration schema/metadata:
sequence: Property on the value of the sequence type, used to define an arbitrary list of defined values. In a sequence, keys are optional and may be integers or strings and are not explicitly mapped. Only the types of values must be defined in the schema.
Further down in that same documentation, we see examples for Sequence Defintions. The second example, Defining a new schema, looks a lot like your case.
Schema definition:
domain.language_negotiation:
type: config_object
label: 'Domain language negotiation'
mapping:
domain_language:
type: sequence
label: 'Domains'
sequence:
type: string
label: 'Langcode mapping'
Example configuration supported by the above schema definition:
domain_language:
example_local: en
one_example_local: af
two_example_local: af
three_example_local: en
four_example_local: en
For your specific case, you can update your schema definition like:
mymodule.settings:
type: config_entity
label: 'Mymodule Breadcrumb Settings'
mapping:
node_bundles:
# Change from mapping to sequence
type: sequence
label: 'Bundle machine names.'
# NEW: describe your sequence values.
sequence:
type: string
label: 'whatever you would call the "values" of your node_bundles array'