@Override
    public Optional<String> getOption(ImmutableContextSet contexts, String s) {
        MetaCache data = this.parent.getCachedData().getMetaData(this.plugin.getContextManager().formQueryOptions(contexts));
        if (s.equalsIgnoreCase(Prefix.NODE_KEY)) {
            String prefix = data.getPrefix(CheckOrigin.PLATFORM_API).result();
            if (prefix != null) {
                return Optional.of(prefix);
            }
        }

        if (s.equalsIgnoreCase(Suffix.NODE_KEY)) {
            String suffix = data.getSuffix(CheckOrigin.PLATFORM_API).result();
            if (suffix != null) {
                return Optional.of(suffix);
            }
        }

        String val = data.getMetaValue(s, CheckOrigin.PLATFORM_API).result();
        if (val != null) {
            return Optional.of(val);
        }

        Optional<String> v = getParentCollection().getDefaults().getOption(contexts, s);
        if (v.isPresent()) {
            return v;
        }

        return this.plugin.getService().getRootDefaults().getOption(contexts, s);
    }
Implements {@link LPSubject} for a {@link PermissionHolder}.
sponge/src/main/java/me/lucko/luckperms/sponge/service/model/permissionholder/PermissionHolderSubject.java