﻿id	summary	reporter	owner	description	type	status	priority	milestone	component	version	resolution	keywords	cc
18383	[WIP PATCH RFC] Add class and methods to expand `access` tags	taylor.smock	team	"This patch doesn't expand `conditional` tags. It replaces values in `ConditionalKeys.java` (specifically the `RESTRICTION_VALUES` and `TRANSPORT_MODES`).

This is so that other classes can expand access values (so `hgv=yes` expands to `hgv=yes + hgv_articulated=yes`).

Future use cases:
* mapcss:
{{{
#!mapcss
way[highway][motorway][!foot][access(""foot"") == ""yes""] {
    throwOther: ""Probable bad access tag"";
}
}}}
* Routing tests
{{{
#!java
public boolean usable(Way way, String transportMode) {
    List<String> possibleModes = Access.getTransportModes().stream().filter(way::hasKey).collect(Collectors.toList());
    Map<String, String> accessMap = new HashMap<>();
    possibleModes.forEach(mode -> Access.mergeMaps(accessMap, Access.expandAccessMode(mode, way.get(mode))));
    return Access.getPositiveAccessValues().contains(accessMap.getOrDefault(transportMode, ""no""));
}}}"	enhancement	new	normal		Core			access	
