protected function buildModel($input_data, string $type, Builder $builder = null, Map $context = null)
    {
        $builder = $builder ?: $this->getBuilderForType($type);

        $this->enforceProcessCompatibility(($builder instanceof ContextualBuilder), (null !== $context), $builder);

        if ($builder instanceof ContextualBuilder) {
            return $builder->build($input_data, $context);
        }

        return $builder->build($input_data);
    }