docs: def ChildField(cls, default=NOTHING, required=True, repr=True, cmp=True,
                 key=None):
      """
      Create new child field on a model.
  
      :param cls: class (or name) of the model to be related.
      :param default: any object value of type cls
      :param bool required: whether or not the object is invalid if not provided.
      :param bool repr: include this field should appear in object's repr.
      :param bool cmp: include this field in generated comparison.
      :param string key: override name of the value when converted to dict.
      """
      default = _init_fields.init_default(required, default, None)
      converter = converters.to_child_field(cls)
      validator = _init_fields.init_validator(
          required, object if isinstance(cls, str) else cls
      )
      return attrib(default=default, converter=converter, validator=validator,
                    repr=repr, cmp=cmp, metadata=dict(key=key))