===Motivation
A couple of variables has left unchanged (public) after T243461:
```lang=php
public $mFlags; // Used in ConverterRule
public $mDescCodeSep = ':'; // Used in ConverterRule, descendants
public $mDescVarSep = ';'; // Used in ConverterRule, descendants
public $mVariantNames; // Used in ConverterRule
public $mVariants; // Used in ConverterRule
```
At the moment ConverterRule uses them.
```lang=php
$validFlags = $this->mConverter->mFlags;
```
In order to make them non-public, ConverterRule should be refactored to get the required data, not object.
===Expected result
1. public $mConverter; should be removed from ConverterRule.
2. All required data should be injected through constructor like below:
```lang=php
public function __construct(
$text,
$flags,
$convTable,
...
) {
$this->mText = $text;
$this->flags = $flags;
...
}
```
3. Visibility for all variables should be decreased to `private `as there's no reason to use them outside ConverterRule itself.
```lang=php
public $mRuleDisplay = ''
...etc.
```
->
```lang=php
private $mRuleDisplay = ''
...etc.
```
4. The class ConverterRule should be marked as `@internal` as this is internal Implementation and no reason to use it outside the LanguageConverter.
5. LanguageConverter should be changed accordingly. Public variables should be changed to private.
```lang=php
public $mFlags;
...etc.
```
->
```lang=php
private $mFlags;
...etc.
```
6. Respective changes should be added to RELEASE-NOTES-1.35