erf_parser
-type ctx() :: #{base_path := binary(), base_name := binary(), namespace := binary(), resolved := [binary()], spec := spec()}.
-type spec() :: njson:t().
-spec parse(SpecPath) -> Result when SpecPath :: binary(), Result :: {ok, API} | {error, Reason}, API :: erf:api(), Reason :: term().