Feature Testing is the practice of discovering which features a Planet supports. This specification intentionally keeps feature discovery simple.
this document written on is Semantic version 0.1.0. this document is self-published independently.
planet.json is a file in your /Favicond_/
folder (the /Favicond_/ folder MUST be
after the domain, so it MUST be at https://{your-domain}/Favicond_/planet.json). which states some
information of the planet. A valid planet.json file follows all these requirements
Content-Type is
application/json.
compat with as value an object,
this object is called the compat object.
/^[A-Za-z0-9\-_]+$/. slugs are
case-sensitive.
extends
Favicond_.
https://antrequest.nl/standard/PlanetSpec/0.1.0/
and the Feature-Slug main MUST be listed as supported.
extends key where the Feature-Slugs MUST link to a specification linked in the compat object
or be Omitted entirely.
A Feature-Slug is a string set forth by a Specification Linked to by the url which is the parent object's key.
For Illustrative purposes Only.
{
"compat": {
"https://antrequest.nl/standard/PlanetSpec/0.1.0/": {
"main": true
},
"https://antrequest.nl/standard/FaviDiD/0.3.1/": {
"keygen": true,
"auth": true,
"newProto": false
},
"https://antrequest.nl/standard/FaviDiD/0.1.1/": {
"extends": "https://antrequest.nl/standard/FaviDiD/0.3.1/",
"newProto": true
}
}
}
Edges SHOULD attempt to do the following when parsing:
extends URL is HTTP, not HTTPS.
extends Feature-Slug (key) is a boolean.
extends Feature-Slug (key) points not to a standard listed in the compat object.
extends) is not a boolean.
planet.json isnt valid json or it wasnt served with 200
{"compat":{}} instead, basically nothing is supported
planet.json lists https://antrequest.nl/standard/PlanetSpec/0.1.0/ as false.
if a standard is forked (like i encourage mine to be) you might inherit features from them. which is
where the extends comes in. if a feature doesnt exist in this feature object
the Edge MUST go to the extends object and look there.
Edges MUST detect cycles in the extends chain (e.g., A -> B -> C -> A) and return
false for the feature if a cycle is detected.
to determine whether a feature is supported follow these steps given a compat object (compat), a Specification URL (url), a Feature-Slug (slug), and an array (seen) SHOULD be Empty if it isnt a Recursive Call.
compat[url] in ECMAScript)
false.
extends of
$SlugObject
false.
PlanetSpec only cares about what a planet can do Right Now, as in "Does this Planet
support
Specification Z as described Right Now", this is an objective fact and doesnt impact anyone's
privacy or security. Edges are instructed to take your word
for it if it is listed as false and MUST verify as set forth in Specification Z if it is listed as
true. Edges MAY have a local reputation bank and MAY decrease or blacklist a planet if it is true
but not supported. but that is fully Edge-Defined.
also Edge-Defined is that if the user can and wants to is to share their local reputation bank with others. this Specification makes no demands about how Edged and users treat, use, and distribute their local reputation bank (or even if they have any). Such sharing, if it occurs, is between users and outside the scope of this protocol.
Edges SHOULD respect caching headers. caching headers Planets set is Planet-Defined.
please tell me how i did. this is self-published independently.