We already have per-level navigation definitions and additions from tickets such as and GUISE-144.
We need to be able to specify navigation, or more importantly, add to navigation on a per-page basis. We can do it using a navigation side car in the form .filename.ext.navigation.*. The presence of the .filename.ext.navigation.* will be considered to reset the navigation for that page. Any .filename.ext.navigation+.* file will be added to the reset .filename.ext.navigation.* definition or to the existing definition.
Although there are several possible approaches, it will be simpler to consider that
Combined with existing logic, the page navigation would be considered like this:
Find base page navigation.
If the artifact is for a source file and there is a .filename.ext.navigation.* file, use that.
Otherwise search for general .navigation.* and .navigation+.* files up the hierarchy as in and GUISE-144.
If the artifact is for a source file, add the contents of any .filename.ext.navigation+.* file.