An alternative possibility would be to prescribe the format of IndieAuth access codes, as part of the standard. For instance, we could prefix the usual arbitrary implementation-specific access code blob with the expected me
value, making it easy for token endpoints to discover the correct authorization endpoint. code=https://00dani.me/$C5r1cuqJk1fUTGrWX4DPHz44jxpgHF
or something like that. Then, of course, pure OAuth 2.0 clients would pass through that extra piece of information with no trouble whatsoever, since it's embedded in an existing standard parameter.
It's certainly a messy approach, though, and one might question whether OAuth client compatibility is worth adding this complexity to IndieAuth. Additionally, making a change like this now would introduce potential incompatibility: a token endpoint that knows it can pull information out of the access code might still receive an access code from an authorization endpoint that doesn't embed information in the prescribed format, for instance.
Still, prescribing a format for access codes might not be quite as unreasonable as it seems: after all, client IDs are also treated as opaque in pure OAuth 2.0, whereas in IndieAuth they have a prescribed and meaningful format.
Here's a quick survey of current implementations of token endpoints:
Integrated Micropub/Token/Authorization Endpoints
me
parameter exists, but does not use it for anythingme
parameter exists, but does not use it for anything sourceme
parameter detailsme
parameter sourceme
parameter sourceme
parameter sourceme
in the request. not strictly necessary since it ends up using theme
that is stored with the authorization code anyway. sourceAuthorization Endpoint Service, Built-In Token and Micropub Endpoints
Authorization Endpoint and Token Endpoint Service
me
parameter exists, but does not use it sourceStandalone Token Endpoint Service
me
to find the authorization endpoint to verify the code sourceme
to find the authorization endpoint, but only allows a whitelisted set of endpoints to be used source readmeme
parameter enables this feature.